package com.njmaomao.gj.pyot.common.bean.dto;

import com.njmaomao.gj.pyot.common.bean.BaseRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;


@ApiModel(value = "报关重推参数")
public class OrderRedeclareReqDTO extends BaseRequest {

    @ApiModelProperty(notes = "订单编码 必传",required = true)
    @NotBlank
    private String orderCode;

    @ApiModelProperty(notes = "商户子订单号 拆单必传")
    private String subOrderNo;

    @ApiModelProperty(notes = "海关 必传；GUANGZHOU_ZS  广州（总署版）；GUANGZHOU_NS_GJ 广州南沙国检",required = true)
    @NotBlank
    @Pattern(regexp = "GUANGZHOU_ZS|GUANGZHOU_NS_GJ",message = "只能取值GUANGZHOU_ZS或者GUANGZHOU_NS_GJ")
    private String customs;

    @ApiModelProperty(notes = "商户海关备案号 必传；GUANGZHOU_ZS对应440126T832,GUANGZHOU_NS_GJ对应1500002864",required = true)
    @NotBlank
    private String mchCustomsNo;

    //下面4个参数是为了兼容财富通重推报关接口。如果财富通报关逻辑去除后，可以去掉。
    @ApiModelProperty(notes = "证件号码 用户大陆身份证号，尾号为字母X的身份证号，请大写字母X。商户号为10027309时必传")
    private String certId;

    @ApiModelProperty(notes = "用户姓名；商户号为10027309时必传")
    private String name;

    @ApiModelProperty(notes = "应付金额 商户号为10027309,拆单时必传。order_fee=transport_fee+product_fee")
    private Integer orderFee;

    @ApiModelProperty(notes = "物流费 商户号为10027309,拆单时必传")
    private Integer transportFee;

    @ApiModelProperty(notes = "商品价格 商户号为10027309,拆单时必传")
    private Integer productFee;

    public String getOrderCode() {
        return orderCode;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public String getSubOrderNo() {
        return subOrderNo;
    }

    public void setSubOrderNo(String subOrderNo) {
        this.subOrderNo = subOrderNo;
    }

    public String getCustoms() {
        return customs;
    }

    public void setCustoms(String customs) {
        this.customs = customs;
    }

    public String getMchCustomsNo() {
        return mchCustomsNo;
    }

    public void setMchCustomsNo(String mchCustomsNo) {
        this.mchCustomsNo = mchCustomsNo;
    }

    public String getCertId() {
        return certId;
    }

    public void setCertId(String certId) {
        this.certId = certId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getTransportFee() {
        return transportFee;
    }

    public void setTransportFee(Integer transportFee) {
        this.transportFee = transportFee;
    }

    public Integer getProductFee() {
        return productFee;
    }

    public void setProductFee(Integer productFee) {
        this.productFee = productFee;
    }

    public Integer getOrderFee() {
        return orderFee;
    }

    public void setOrderFee(Integer orderFee) {
        this.orderFee = orderFee;
    }

}
